From baabb747749e408030613bdc42ae9f0cbe489ba8 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 9 Jun 2016 15:45:23 +0200 Subject: [PATCH] x86/XSTATE: clarify XRSTOR() macro Make obvious that xcomp_bv is expected to be clear when we get here with XSTATE_COMPACTION_ENABLED not set. Signed-off-by: Jan Beulich Reviewed-by Andrew Cooper --- xen/arch/x86/xstate.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/xstate.c b/xen/arch/x86/xstate.c index 1fd1ce8c24..d90e89ed0a 100644 --- a/xen/arch/x86/xstate.c +++ b/xen/arch/x86/xstate.c @@ -387,8 +387,11 @@ void xrstor(struct vcpu *v, uint64_t mask) { \ if ( unlikely(!(ptr->xsave_hdr.xcomp_bv & \ XSTATE_COMPACTION_ENABLED)) ) \ - ptr->xsave_hdr.xcomp_bv |= ptr->xsave_hdr.xstate_bv | \ - XSTATE_COMPACTION_ENABLED; \ + { \ + ASSERT(!ptr->xsave_hdr.xcomp_bv); \ + ptr->xsave_hdr.xcomp_bv = ptr->xsave_hdr.xstate_bv | \ + XSTATE_COMPACTION_ENABLED; \ + } \ _xrstor(pfx "0x0f,0xc7,0x1f"); /* xrstors */ \ } \ else \ -- 2.30.2